/**
 * 
 */
package edu.erpan.fachada.administracion;

import java.util.List;

import com.ibytecode.util.JNDILookup;

import edu.erpan.bl.bean.administracion.UsuarioBean;
import edu.erpan.bl.bean.administracion.UsuarioBeanRemote;
import edu.erpan.bl.entities.administracion.Genero;
import edu.erpan.bl.entities.administracion.Modulo;
import edu.erpan.bl.entities.administracion.Persona;
import edu.erpan.bl.entities.administracion.Rol;
import edu.erpan.bl.entities.administracion.TipoIdentificacion;
import edu.erpan.bl.entities.administracion.Usuario;
import edu.erpan.util.entityManager.exceptions.PersistException;
import edu.erpan.util.entityManager.exceptions.QueryException;

/**
 * @author Jeison
 *
 */
public class UsuarioFachada implements IUsuarioFachada {

	/**
	 * 
	 */
	public UsuarioFachada() {
	}

	/* (non-Javadoc)
	 * @see edu.erpan.fachada.administracion.IUsuarioFachada#consultarUsuario(java.lang.String, java.lang.String)
	 */
	@Override
	public Usuario consultarUsuario(String login, String password) throws QueryException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarUsuario(login, password);
	}

	/* (non-Javadoc)
	 * @see edu.erpan.fachada.administracion.IUsuarioFachada#consultarRolesUsuario(edu.erpan.bl.entities.administracion.Usuario)
	 */
	@Override
	public List<Rol> consultarRolesUsuario(Usuario usuario) throws QueryException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarRolesUsuario(usuario);
	}

	/* (non-Javadoc)
	 * @see edu.erpan.fachada.administracion.IUsuarioFachada#consultarModulos(edu.erpan.bl.entities.administracion.Usuario, edu.erpan.bl.entities.administracion.Rol)
	 */
	@Override
	public Rol consultarRol(Rol rol) throws QueryException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarRol(rol);
	}

	@Override
	public Modulo consultarModulo(Modulo modulo) throws QueryException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarModulo(modulo);
	}

	@Override
	public List<Persona> consultarPersonas(Boolean activo) throws QueryException{
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarPersonas(activo);
	}

	@Override
	public List<Usuario> consultarUsuariosPersonas(Persona persona) throws QueryException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarUsuariosPersonas(persona);
	}

	@Override
	public Persona consultarPersona(Persona persona) throws QueryException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarPersona(persona);		
	}

	@Override
	public void guardarPersona(Persona persona) throws PersistException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		usuarioBean.guardarPersona(persona);
	}

	@Override
	public void editarPersona(Persona persona) throws PersistException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		usuarioBean.editarPersona(persona);
	}

	@Override
	public void guardarUsuario(Usuario usuario) throws PersistException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		usuarioBean.guardarUsuario(usuario);		
	}

	@Override
	public void editarUsuario(Usuario usuario) throws PersistException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		usuarioBean.editarUsuario(usuario);		
	}

	@Override
	public boolean existeUsuario(String login) throws QueryException {
		// TODO Auto-generated method stub
		Usuario usuario=this.consultarUsuario(login, null);
		boolean existe=usuario!=null;
		return existe;
	}

	@Override
	public List<TipoIdentificacion> consultarTiposIdentificacion()
			throws QueryException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarTiposIdentificacion();
	}

	@Override
	public List<Genero> consultarGeneros() throws QueryException {
		UsuarioBeanRemote usuarioBean=JNDILookup.doLookup(UsuarioBean.class, UsuarioBeanRemote.class);
		return usuarioBean.consultarGeneros();
	}
}
